home *** CD-ROM | disk | FTP | other *** search
/ MPEG Toolkit / MPEG Toolkit.iso / os2 / mpegenc / mpegenc.txt < prev    next >
Text File  |  1997-01-01  |  7KB  |  137 lines

  1.  
  2.                  MPEG-1 Video Software Encoder
  3.                 (Version 1.2; October 18, 1993)
  4.  
  5.      Lawrence A. Rowe, Kevin Gong, Ketan Patel, and Dan Wallach
  6.     Computer Science Division-EECS, Univ. of Calif. at Berkeley
  7.  
  8. This directory contains the freely distributed Berkeley MPEG-1 Video 
  9. Encoder.  The encoder implements the standard described in the ISO/IEC
  10. International Standard 11172-2.  The code has been compiled and tested 
  11. on the following platforms:
  12.  
  13.  DECstation 5000 and Alpha
  14.  HP PA-RISC (HP/UX 8.X) (i.e., HP 9000/7XX and 9000/3XX)
  15.  IBM RS/6000
  16.  Intel i486 running ISC InterActive 2.2.1 (SysV 3.2), Linux (SLS v1.01),
  17.     and XFree86-1.2 (X11R5)
  18.  SGI Indigo running IRIX 5.0.1
  19.  Sun Sparc (SunOS 4.X)
  20.  
  21. In addition, Rainer Menes from the Technical University of Munich has
  22. ported the encoder and decoder to the Macintosh.  You can get that code
  23. directly from him (menes@statistik.tu-muenchen.de), or from the 
  24. Berkeley FTP archive (toe.CS.Berkeley.EDU).  If you decide to port 
  25. the code to a new architecture, please let us know so that we can 
  26. incorporate the changes into our sources.
  27.  
  28. This directory contains everything required to build the encoder
  29. and run it.  We have included source code, makefiles, binaries
  30. for selected platforms, documentation, and test data.  Installation 
  31. instructions are given in the file named src/INSTALL.  A man 
  32. page is given in the file doc/mpeg_encode.1. 
  33.  
  34. The encoder will accept any input file format as long as you provide 
  35. a script to convert the images to PPM or YUV format.  Input file
  36. processing is described in the file doc/INPUT.FORMAT.  Options to control 
  37. input file processing and compression parameters are specified in 
  38. a parameter file.  Very little error processing is done when reading 
  39. this file.  We suggest you start with the sample parameter file 
  40. examples/template.param and modify it.  See also examples/default.param.
  41.  
  42. We have also provided a Tcl/Tk script (Ver 6.7), named encode.tcl, that can 
  43. be used to set parameters interactively (see the misc/ directory).
  44. The misc/ directory contains other utilities you might find useful including:
  45. programs to do PPM/YUV conversion and programs to convert Parallax
  46. XVideo JPEG files into PPM or YUV frames. We have also written a program to
  47. read frames from a Parallax JMOVIE file (see the FTP site listed above file
  48. pub/multimedia/misc/jgetFrame.tar.Z).
  49.  
  50. The motion vector search window can be specified, including half-pixel
  51. block matching, in the parameter file.  We have implemented several 
  52. search algorithms for P-frames including: 1) exhaustive search, 
  53. 2) subsampled search, and 3) logarithmic search.  We have also implemented
  54. several alternatives for B-frame block matching including: 1) interpolate
  55. best forward and best backward block, 2) find backward block for best
  56. forward or vice-versa (called CROSS2), and 3) exhaustive cross product
  57. (i.e., go out for coffee and a donut!). The search algorithms are controlled
  58. by options in the parameters file.  For tips on choosing the right search
  59. technique, see doc/TIPS.
  60.  
  61. The encoder can be run on one computer (i.e., sequential) or on several
  62. computers (i.e., parallel).  Our goal is to produce a portable, easy-to-use
  63. encoder that we can use to encode large volumes of video material for
  64. the Berkeley VOD system (see paper VodsProp93.ps.Z on the FTP archive).
  65. The parallelism is done on a sequence of pictures.  In other words, you 
  66. can spawn one or more children to encode continuous runs pictures. The 
  67. uncompressed data can be accessed either through NFS or TCP sockets.  
  68. The goal is to allow you to encode using multiple processors, think 
  69. spare cycles on workstations, to speed up the encoding time.  Although
  70. performance depends on the speed of individual processors, the file system
  71. and network, and the P/B frame search methods, we have encoded 3.75
  72. frames/second on 8 HP Snakes running in parallel as compared with 0.6
  73. frames/second on 1 Snake.  These are preliminary results. We are continuing 
  74. to experiment with and tune the code.  Instructions to run the parallel system 
  75. are given in the man page and the parallel.param example parameter file.
  76.  
  77. We have done some tuning to produce a reasonable encoder, but there are
  78. many more optimizations that we would like to incorporate.  These 
  79. extensions are listed in the file EXTENSIONS.  If you succeed in 
  80. implementing any of them, please let us know! In particular, we have not
  81. implemented rate control to limit the bitrate nor dynamically varying 
  82. compression parameters (e.g., frame sequence, Qscale, search technique, etc.).
  83.  
  84. We have established several mailing lists for messages about the Berkeley 
  85. MPEG work:
  86.  
  87. mpeg-list-dist@CS.Berkeley.EDU
  88.    General information on the MPEG-1 decoder and encoder for 
  89.    everyone interested should be sent to this list.
  90.  
  91. mpeg-list-request@CS.Berkeley.EDU
  92.    Requests to join or leave the list should be sent to this
  93.    address. The subject line should contain the single word
  94.    ADD or DELETE.
  95.  
  96. mpeg-bugs@CS.Berkeley.EDU
  97.    Problems, questions, or patches should be sent to this address.
  98.  
  99. Anyone interested in providing financial support for this research or 
  100. discussing other aspects of this project should contact Larry Rowe at 
  101. Rowe@CS.Berkeley.EDU (+1 510-642-5117).
  102.  
  103. This software is freely distributed.  That means, you may use it for 
  104. any non-commercial purpose.  However, patents are held by several companies 
  105. on various aspects of the MPEG video standard.  Companies or individuals
  106. who want to develop commercial products that include this code must
  107. acquire licenses from these companies.  For information on licensing, see
  108. Appendix F in the standard.
  109.  
  110. ACKNOWLEDGEMENTS:
  111.  
  112. We gratefully thank Hewlett-Packard and Fujitsu who provided financial
  113. support for this work.  We also want to thank the following people for 
  114. their help:
  115.  
  116.     Jef Poskanzer who developed the pbmplus package.
  117.     ---------
  118.     Copyright (C) 1989, 1991 by Jef Poskanzer.
  119.  
  120.     Permission to use, copy, modify, and distribute this software and its
  121.     documentation for any purpose and without fee is hereby granted, provided
  122.     that the above copyright notice appear in all copies and that both that
  123.     copyright notice and this permission notice appear in supporting
  124.     documentation.  This software is provided "as is" without express or
  125.     implied warranty.
  126.     ---------
  127.  
  128.     Eiichi Kowashi of Intel and Avideh Zakhor of U.C. Berkeley who
  129.     provided valuable suggestions on motion vector searching.
  130.  
  131.     Chad Fogg of the University of Washington who has helped us 
  132.     understand many issues in MPEG coding and decoding.
  133.  
  134.     Rainer Menes of the Technical University of Munich who has ported the
  135.     the Berkeley MPEG encoder and decoder to the Macintosh, and he has 
  136.     provided us with many suggestions to improve the code.
  137.